草庐IT

shell 编程

全部标签

ruby - 在 shell 命令失败时引发异常?

我正在用Ruby编写一些脚本,我需要通过shell命令与一些非Ruby代码交互。我知道至少有6differentways从Ruby执行shell命令,不幸的是,当shell命令失败时,这些似乎都不会停止执行。基本上,我正在寻找的东西相当于:set-oerrexit...在Bash脚本中。理想情况下,该解决方案会在命令失败时引发异常(即通过检查非零返回值),可能会使用stderr作为消息。这写起来并不难,但似乎应该已经存在了。有没有我找不到的选项? 最佳答案 Ruby2.6addsanexception:argument:system

ruby - 我如何以编程方式查询 Vagrant 的配置状态?

目标我正在尝试有条件地运行vagrant-berkshelf插入。默认情况下,启用该插件会导致Berkshelf在每个vagrantup(这是一个相对昂贵的操作)上解析和供应商说明书,即使当前的vagrant操作不是配置运行。例如,我希望Berkshelf在我运行时运行:vagrantup第一次,或者当我执行vagrantreload--provision时。Thesourceimplies应该有一种方法可以查询Vagrant本身以确定它是否是配置运行。具体来说,应该有一种方法可以挂接到@env[:provision_enabled]或vagrant.actions.vm.provis

ruby - 以编程方式在 Ruby 中获取桌面的屏幕截图?

我问了这个关于takingapictureofawebpageprogrammatically的问题,我已经下载并获得了webkit2png工作(为博客等HTML页面拍照)。太酷了,谢谢你给我看!现在我想开始做更多的事情,比如能够在加载Flash网站和我的桌面后拍照。是否可以使用webkit2png为Flash网站拍照(考虑到您可能需要等待几秒钟才能加载)?但主要问题是,如何以编程方式为桌面拍照?这将使我能够更好地控制正在发生的事情。 最佳答案 您可以使用xwd(1)获取根窗口的屏幕截图:xwd-display:0-root|xwd

ruby - Lisp - 是否适合网络编程/应用程序(交互式)? ruby 的方式是? php的方式是?

Lisp是否适合Web编程/应用程序(交互式),就像ruby​​和php一样?需要考虑的事情是:易于使用可部署性难度(尤其是对于编程初学者而言)(编辑)在阅读PaulGraham'sessay之后,我特别提到了CommonLisp.将是我的第一门编程语言。在这方面。这样做合适吗?我听说Clojure的宏功能不如CommonLisp的强大,这就是我尝试学习Clojure的原因。它教授编程并且非常强大。 最佳答案 Lisp是一个语系,而不是单一的语言。为了稍微回答您的问题,是的,存在用于各种Lisp方言的Web框架,例如用于Common

ruby - 如何从 Ruby 启动和停止 shell 守护进程

我如何启动一个shell守护进程,然后在同一个Ruby脚本中停止它?更具体地说,我希望我的Ruby脚本能够:使用shell命令启动服务器守护进程(railsserver|shotgun|etc...)。在服务器运行时做一些事情。让服务器退出。ruby1.8/1.9和unix/windows支持的所有拥抱解决方案都是首选。(我读过fork例如在Windows上不起作用)。 最佳答案 我强烈推荐RubyDaemonsgem.我认为它具有您需要的所有功能。查看其自述文件的第3部分,并特别注意Daemons.call允许守护进程任意代码的方

ruby - 使用 $& 全局变量的编程别名方法

我正在尝试为使用Ruby的特殊$&(returnslastregexmatch)的方法起别名。我可以手动执行此操作并且有效:original=String.instance_method(:sub)String.send(:define_method,:sub)do|*args,&block|puts"called"original.bind(self).call(*args,&block)end"foo".sub(/f/){$&.upcase}called#=>"Foo"但是,如果我尝试编写一个为我执行此操作的方法,它会失败:defprogramatic_alias(klass,me

ruby - 我怎样才能将这段代码转换为元编程,这样我就可以停止复制它了?

我有一个用于building.netsystemswithruby/rake的小但不断增长的框架,我已经研究了一段时间了。在此代码库中,我有以下内容:require'rake/tasklib'defassemblyinfo(name=:assemblyinfo,*args,&block)Albacore::AssemblyInfoTask.new(name,*args,&block)endmoduleAlbacoreclassAssemblyInfoTask此代码遵循的模式在框架中重复了大约20次。每个版本的区别在于正在创建/调用的类的名称(而不是AssemblyInfoTask,它可

ruby-on-rails - 元编程 String#scan 和全局变量?

我的目标是将String类中的方法替换为其他可以完成额外工作的方法(这是一个研究项目)。通过在类似于的String类中编写代码,这适用于许多方法alias_method:center_OLD,:centerdefcenter(args*)r=self.send(*([:center_OLD]+args))#dosomeworkhere#returnsomethingend对于某些方法,我还需要处理一个Proc,这没问题。但是,对于scan方法,调用它会产生设置specialglobalvariables的副作用。来自正则表达式匹配。如文档所述,这些变量是线程和方法的本地变量。不幸的是,

ruby - 使用 Ruby gem 部署 shell 脚本并安装在 bin 目录中

我希望在我的gem的bin目录中放置一个shell脚本,以及属于该包的其他Ruby程序。我希望将这个shell脚本按原样安装在bin目录中(即,没有包装器)。Rubygems有可能吗?如果不可能的话,我会很高兴安装后Hook。有人有这方面的经验吗? 最佳答案 这里描述了这个问题:https://github.com/rubygems/rubygems/issues/88如果您正在开发的gem仅供您自己使用,您可以简单地安装它geminstall--no-wrappermy_gem我认为您最好编写一个运行bash脚本的ruby​​脚本

MySQL的JDBC 编程

目录1.数据库编程:JDBC2.JDBC工作原理3.JDBC使用3.1驱动包的下载与导入3.2JDBC使用步骤(插入)4.JDBC修改删除查询1.将数据库驱动包,添加到项目依赖中创建目录,拷贝jar包,然后addaslibrary2.创建数据源DataSourse:数据源,描述了数据库服务器在哪里3.和数据库建立连接使用JDBC里的Connection将代码和数据库服务器进行连接一个程序中,通常有一个数据源对象,可以有多个Connection对象4.构造sql语句PreparedStatement:表示一个预处理过的SQL语句对象5.执行sql语句(1)executeUpdate对应插入到删除